package com.hzlj.position.locate.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.hzlj.position.locate.common.dto.abnNightOutJzry.AbnNightOutJzryAddDTO;
import com.hzlj.position.locate.common.dto.abnNightOutJzry.AbnNightOutJzryQueryResultDTO;
import com.hzlj.position.locate.common.model.AbnNightOutJzry;
import com.hzlj.position.locate.dao.AbnNightOutJzryDao;
import com.hzlj.position.locate.service.AbnNightOutJzryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

import static com.hzlj.position.config.config.IdConfig.POSITION_ID_GEN;

/**
 * 定位分析-夜不归宿表-人员信息(AbnNightOutJzry)表服务接口
 *
 * @author lifh
 * @date 2023-10-17 17:38:36
 */
@Slf4j
@Service
public class AbnNightOutJzryServiceImpl implements AbnNightOutJzryService {
    @Resource
    private AbnNightOutJzryDao abnNightOutJzryDao;

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveAbnNightOutJzry(String nightOutId,
                                    List<AbnNightOutJzryAddDTO> dtos) {
        List<AbnNightOutJzry> adds = dtos.stream().map(e -> {
            AbnNightOutJzry add = BeanUtil.copyProperties(e, AbnNightOutJzry.class);
            add.setId(POSITION_ID_GEN.nextIdStr());
            add.setPositionId(e.getId());
            add.setNightOutId(nightOutId);
            add.setCreateTime(new Date());
            return add;
        }).collect(Collectors.toList());
        this.abnNightOutJzryDao.saveBatch(adds);
    }

    @Override
    public List<AbnNightOutJzryQueryResultDTO> listAbnNightOutJzry(String nightOutId) {
        return this.abnNightOutJzryDao.listAbnNightOutJzry(nightOutId);
    }
}
